# 这个模块是正则表达式的，主要是检验手机号的
import re


def mobile(mobile_str):
    """
    校验手机号的
    """
    if re.match(r'^1[3-9]\d{9}$', mobile_str):
        return mobile_str
    else:
        raise ValueError('{} is not a valid mobile'.format(mobile_str))


def regex(pattern):
    """
    正则校验
    """

    def validate(value_str):
        """
        具体校验一个字符串，根据自定义正则表达式
        """
        if re.match(pattern, value_str):
            return value_str
        else:
            raise ValueError('{} is invalid params'.format(value_str))

    return validate


# 验证邮箱的
def email(email_str):
    """
    检验邮箱地址的
    """
    if re.match(r'^[A-Za-z0-9-._]+@[A-Za-z0-9-]+(.[A-Za-z0-9]+)*(.[A-Za-z]{2,6})$', email_str):
        return email_str
    else:
        raise ValueError('{} is not a valid email'.format(email_str))
